package com.reger.web.permission;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;

import java.lang.annotation.Documented;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 该注解适用于控制器的类上和方法上
 * @author leige
 *
 */
@Documented
@Target({ TYPE, METHOD })
@Repeatable(Permissions.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface Permission {

	/**
	 * 权限所属的组，需要与PermissionGroup的bean名字对应
	 * @return 组名
	 * @see PermissionGroup
	 */
	String group() default ""; 
	
	/**
	 * 权限校验时，这个值通过SpEl运算后输入
	 * @return
	 */
	String value() default "";
	
	/**
	 * 拓展字符串，例如，有时权限比较复杂，可能需要使用sql
	 * @return 拓展的字符串
	 */
	String expand() default ""; 
	
}
